Skip to content

Correct the media stage bound to connected - #704

Open
robertjamesprior wants to merge 3 commits into
mainfrom
hypeship/live-view-media-reason-bound
Open

robertjamesprior wants to merge 3 commits into
mainfrom
hypeship/live-view-media-reason-bound

Conversation

@robertjamesprior

@robertjamesprior robertjamesprior commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Two corrections to the live view embedding guidance, plus a pass over the prose that changed.

The media reason row. It said the bound expires if ICE never reached checking. Since kernel-images#417 the client keeps the media bound armed through connected, so it expires only if ICE never arrives at connected or completed — completed is the other way a healthy connect can land when gathering is already done. An embedder branching on reason would otherwise expect media to fire earlier than it does. This row is the one #698 carried, which this PR supersedes.

The example watchdog. It remounted 15s after mount. The client's connect bounds run in sequence — transport, then signaling, then media — and sum to 28s, so an embedder following the snippet tore the frame down before the client could report which stage stalled. That is the media stage, which is the one most likely to have stalled, so the guidance was suppressing the diagnosis it was written to enable. The example now uses 35s, and the prose says why the timer needs room above the budget: it also covers loading the frame, including waking a browser that has gone to sleep.

The note claiming KERNEL_CONNECTION_TIMEOUT stops firing once negotiation begins is corrected the same way: the media bound stays armed past checking until ICE reaches connected or completed, so a connect stalling in between does report one. What never emits it is a viewer whose frames stop after it connected.

Paired with kernel-images#472, which holds the media bound at 10s so the budget fits. Merge order doesn't matter for the docs themselves, but the two describe the same client.

Docs only, prose and one snippet constant. I didn't run mint broken-links on this revision because mint isn't installed in this environment; the change touches no links and the check passed on the previous revision.


Note

Low Risk
Documentation-only changes to live view embedding guidance; no runtime or API behavior changes in this repo.

Overview
Updates live view embedding docs so embedders match current client behavior for connect failures and watchdog timing.

The media reason row now says the bound expires when ICE never reaches connected or completed (including stalls after checking), not when it never reaches checking.

The “viewer never starts” section adds that sequential connect bounds default to 28s and watchdogs must exceed that plus frame load/wake time. The sample setTimeout increases from 15s to 35s so remounts don’t happen before stage-specific timeouts fire.

Prose on KERNEL_CONNECTION_TIMEOUT is corrected: the media bound stays active until ICE is connected/completed; timeouts don’t apply to viewers that already connected then stopped rendering.

Reviewed by Cursor Bugbot for commit 77bfce2. Bugbot is set up for automated code reviews on this repo. Configure here.

@mintlify

mintlify Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
Kernel 🟢 Ready View Preview Oct 19, 2026, 9:42 PM

💡 Tip: Enable Automations to automatically generate PRs for you.

The snippet remounted 15s after mount. The client's connect bounds run in
sequence and sum to 23s, so an embedder following the example tore the frame
down before the client could report which stage stalled — including media,
the stage most likely to have stalled.

Also correct the note about KERNEL_CONNECTION_TIMEOUT never firing once
negotiation begins. The media bound stays armed past `checking` until ICE
reaches `connected`, so a connect that stalls in between does report one;
what never emits it is a viewer whose frames stop after it connected.

@Sayan- Sayan- left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

overal looks good. needs a deslop to conform to docs language guidance

…ance

The example remounts at 35s, above the client's connect bounds, which run in
sequence (transport, signaling, media) and now sum to 28s after
kernel-images#472 settled the media bound at 10s. Below the budget the example
reproduces the bug this page was fixing: the embedder tears the frame down
before the client can name the stage that stalled.

The prose around it says what the timer has to clear and why, since the timer
also covers loading the frame and waking a sleeping browser. The timeout
warning names `completed` alongside `connected`, which is the other way the
media bound clears.

The `media` row now reads "connected or completed ... covers a peer that stalls
after checking", folded in from #698, which this supersedes.

This branch was successfully deployed

1 active deployment
staging — 77bfce2d Deployed Oct 19, 2026 by mintlify[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants